(function($, undefined) {
	$.fn.cityMenu = function(options) {

		$.fn.cityMenu.init();

		// 定位偏移量

		$(this).click(function() {
					$.extend($.fn.cityMenu.defaults, options);
					$.fn.cityMenu.$input = $(this);
					$.fn.cityMenu.showMenu(this);
					// 阻止冒泡防止被关闭
					return false;
				});

		return this;
	};

	$.fn.cityMenu.defaults = {
		next : function() {
		}
	};

	// 公有变量
	$.fn.cityMenu.$cityMenu = "";
	// 省份id
	$.fn.cityMenu.pid = 0;
	$.fn.cityMenu.pname = "";
	// 城市id
	$.fn.cityMenu.cid = 0;
	$.fn.cityMenu.cname = "";
	// 单个选中对象
	$.fn.cityMenu.$input = "";

	// 载入地区数据
	$.fn.cityMenu.loadProvince = function(next) {
		$.get('/v2/js/ffui/data/province/province.js', function(data) {
					if (next) {
						var json = $.parseJSON(data);
						next(json);
					}
				});
	};

	// 载入城市数据
	$.fn.cityMenu.loadCity = function(id, next) {
		$.get("/v2/js/ffui/data/city/city_" + id + ".js", function(data) {
					if (next) {
						var json = $.parseJSON(data);
						next(json);
					}
				});
	};
	// 创建或找到menu主面板
	$.fn.cityMenu.init = function() {

		var t = this;
		this.$cityMenu = $("#ffui-city-menu");
		if (this.$cityMenu.size() == 0) {
			this.$cityMenu = $('<div id="ffui-city-menu" class="ffui-city-menu" ><div class="ffui-city-menu-p" ></div><div class="ffui-city-menu-c" ></div></div>');
			$("body").append(this.$cityMenu);
			// 载入数据
			t.loadProvince(function(jsonArr) {
						t.createProvince(jsonArr);
					});

		}

		// 关闭
		$(document).click(function(e) {
					t.$cityMenu.hide();
				});
		t.$cityMenu.click(function() {
					return false;
				});
	};

	// 创建省份
	$.fn.cityMenu.createProvince = function(josnArr) {
		var t = this;
		var $p = t.$cityMenu.find("div.ffui-city-menu-p").addClass("remove-bg");
		var html = "";

		$(josnArr).each(function(i, json) {
			html += '<a href="#" id="ffui-city-menu-p_' + json.id + '" type="'
					+ json.type + '" >' + json.name + '</a>';
		});

		$p.html(html);
		$p.find("a").click(function() {
			t.pid = $(this).attr("id").split("_")[1];
			t.pname = $(this).html();
			// 重置城市名
			t.cid = 0;
			t.cname = "";

			$p.find("a").removeClass("here");
			$(this).addClass("here");

			// 判断是否为直辖市
			if ($(this).attr("type") != "-1") {
				// 显示进度条
				t.$cityMenu.find("div.ffui-city-menu-c")
						.removeClass("remove-bg");

				t.loadCity(t.pid, function(jsonArr) {
							t.createCity(jsonArr);
						});
			} else {
				t.$cityMenu.find("div.ffui-city-menu-c").hide();
				t.$cityMenu.hide();
				t.setInfo();

			}
			return false;
		});
	};

	// 创建地市
	$.fn.cityMenu.createCity = function(jsonArr) {
		var t = this;
		var $c = t.$cityMenu.find("div.ffui-city-menu-c").addClass("remove-bg");
		var html = "";
		$(jsonArr).each(function(i, json) {
			html += '<a href="#" id="ffui-city-menu-c_' + json.id + '"  >'
					+ json.name + '</a>';
		});
		$c.html(html).show();
		$c.find("a").click(function() {
					t.cid = $(this).attr("id").split("_")[1];
					t.cname = $(this).html();
					$c.find("a").removeClass("here");
					$(this).addClass("here");

					t.setInfo();

					t.$cityMenu.hide();
					// $mask.hide();
					return false;
				});
	};
	// 设置显示信息
	$.fn.cityMenu.setInfo = function() {
		if (this.cname != "") {
			this.cname = "-" + this.cname;
		}
		this.$input.val(this.pname + this.cname);
		this.defaults.next(this.pid, this.pname, this.cid, this.cname);
	};
	// 显示层
	$.fn.cityMenu.showMenu = function(input) {
		var offset = $(input).offset();
		this.$cityMenu.css({
					top : offset.top + $(input).outerHeight(true),
					left : offset.left,
					display : "block"
				});

	};
})(jQuery);
